#include "characters/enemies/DemonEnemy.hh"
#include "characters/enemies/Enemy.hh"

#include <iostream>
#include <string>

// Constructor
DemonEnemy::DemonEnemy()
    : Enemy("Demon", "Summoned by students, its presence is too powerful for the physical form to contain, and it begins to curse everything around indiscriminately", 9999, 9999, 999, 999)
{
    std::cout << "An overwhelming presence manifests... The " << getName() << " is here." << std::endl;
}

// Destructor

// Override Methods
bool DemonEnemy::attack(ICharacter &target) // gai
{
    if (!isAlive())
        return false;

    std::cout << "The " << getName() << "'s mere presence causes reality to warp around " << target.getName() << ". A chilling curse spreads..." << std::endl;

    return true;
}

bool DemonEnemy::takeDamage(unsigned damage)
{
    if (damage > 0)
    {
        std::cout << "The attack dissipates harmlessly against the " << getName() << "'s overwhelming power." << std::endl;
    }

    // this->health=getMaxHealth();
    return true;
}